<?php

/**
 * eVoucher actions.
 *
 * @package    movilRedcol
 * @subpackage eVoucher
 * @author     Your name here
 * @version    SVN: $Id: actions.class.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith $
 */
class eVoucherActions extends sfActions
{
 /**
  * Executes index action
  *
  * @param sfRequest $request A request object
  */
    
  public function preExecute() 
  {
     $usuarioActual = $this->getUser()->getAttribute(sfConfig::get('app_name_session'),null);
     if($usuarioActual==null)
     {
          $this->redirect('@logInAuthenticationEVoucher');  
     }
  }  
  
  
  /*Aca solo va seleccionar la opcion Crear Vale Electronico o Vale Electronico Retiro*/
  public function executeIndex(sfWebRequest $request)
  {
      $this->usuarioActual = $this->getUser()->getAttribute(sfConfig::get('app_name_session'));
  }
  
  /*Aca obtengo las listas de las tarjetas del clientes actual
   * como son para crear vales de pedidos se utiliza el parametro < RECHARGE >
   * segun lo especificado en la documentacion. 
   * Una vez acabado el metodo creo una session Flash(que dura solo un salto)
   * y lo regreso al action para que se liste
   */
  public function executeObtenerListaTarjetasCrear(sfWebRequest $request)
  {
      
      $numeroTarjetaFiltro = trim($request->getParameter('numberCard'));
      $serviceEvoucher = new eVoucherClass();
      /*Uso el parametro < RECHARGE >, segun lo especificado en la documentacion. */
      $arrayResutaldo  =  $serviceEvoucher->obtenerListaTarjetas("RECHARGE");
      /*si es correcto creo la session flah*/
      if($arrayResutaldo['success'])
      {  
          $this->getUser()->setFlash('s_parametro',$numeroTarjetaFiltro);
          $this->getUser()->setFlash('s_lista', $arrayResutaldo['object']);
      }       
      else /* Aca solo reviso que tipo de error se puedo haber provocado*/
      {
        $this->redirect('logOut');
      }
      $this->redirect('@vale_ingreso');  
  }
  /*  Aca mostrara solo una caja de texto para buscar sus tarjetas,   
   *  cuando ponen buscar ira al action executeObtenerListaTarjetasCrear
   *  el cual generara una session flash con lista de tarjetas y retorna hasta 
   *  este accion nuevamente, es de ahi de donde sale la lista de tarjetas    
   */
  public function executeIngreso(sfWebRequest $request)
  {
      $this->usuarioActual  = $this->getUser()->getAttribute(sfConfig::get('app_name_session'));
      $serviceEvoucher = new eVoucherClass();
      $lista = $this->getUser()->getFlash('s_lista',null);
      if($lista==null)
      {
           $arrayResutaldo  =  $serviceEvoucher->obtenerListaTarjetas("RECHARGE");
           if($arrayResutaldo['success'])
           {
               $this->getUser()->setFlash('s_lista', $arrayResutaldo['object']);
           }       
           else /* Aca solo reviso que tipo de error se puedo haber provocado*/
           {
               /* si es el tipo error de que la cookie ya expiro, cierro la session en la
                * aplicacion y lo redirijo al inicio
                */

               /******************FALTA IMPLEMENTAR LOGICA****************/
                       $this->redirect('logOut'); 

           }   
      }
      
      return sfView::SUCCESS;
      
  }
  
  public function executeCantidad(sfWebRequest $request)
  {
      $idCard       = $request->getParameter('cardNumber');      
      $name         = $request->getParameter('cardholderName'); 
      $producto     = $request->getParameter('producto'); 
      $serviceId     = $request->getParameter('serviceId'); 
    
      
      $this->cardNumber = $idCard;
      $this->serviceId  = $serviceId;
      $this->producto   = $producto;
      $this->name       = $name;
      $this->usuarioActual = $this->getUser()->getAttribute(sfConfig::get('app_name_session'));
  }

  public function executeBusqueda_codigo(sfWebRequest $request)
  {
      $this->usuarioActual = $this->getUser()->getAttribute(sfConfig::get('app_name_session'));
  }

  public function executeProducto(sfWebRequest $request)
  {
      $idCard = $request->getParameter('cardNumber');      
      $name= $request->getParameter('name');    
      
      $serviceEvoucher = new eVoucherClass();
      $arrayResutaldo  =  $serviceEvoucher->obtenerListaProducto($idCard);
      $obtengoListaProducto = null;
      if($arrayResutaldo['success'])
      {
         $obtengoListaProducto=  $arrayResutaldo['object'];
      }
      
      $this->listaProducto  = $obtengoListaProducto;      
      $this->cardNumber = $idCard;
      $this->name = $name;
      $this->usuarioActual = $this->getUser()->getAttribute(sfConfig::get('app_name_session'));
  }
  
  
  public function executeConfirmacion(sfWebRequest $request)
  {
      $this->forward404Unless($request->isMethod('post'));
      $idCard       =   $request->getParameter('cardNumber');    
      $producto     =   $request->getParameter('producto'); 
      $serviceId    =   $request->getParameter('serviceId'); 
      $name         =   $request->getParameter('name');       
      $cantidad     =   $request->getParameter('cantidad');   
      $this->idCard         =  $idCard;
      $this->producto       =  $producto;
      $this->serviceId      =  $serviceId;
      $this->name           =  $name;
      $this->cantidad       =  $cantidad;
      $this->usuarioActual  =  $this->getUser()->getAttribute(sfConfig::get('app_name_session'));
      
  }

  public function executeMensajeconfir(sfWebRequest $request)
  {
     $this->usuarioActual = $this->getUser()->getAttribute(sfConfig::get('app_name_session'));
  }
  
  
  public function executeGenerateEvoucherRechange(sfWebRequest $request)
  {    
      $this->forward404Unless($request->isMethod('post'));
      $idCard       =   $request->getParameter('cardNumber');    
      $cantidad     =   $request->getParameter('cantidad'); 
      $serviceId    =   $request->getParameter('serviceId'); 
      $serviceEvoucher = new eVoucherClass();
      $arrayResutaldo  =  $serviceEvoucher->generateEvoucher($idCard, $serviceId, $cantidad);
      
      if(!$arrayResutaldo['success'])
      {
          $this->getUser()->setFlash('sf_errorCreate', $arrayResutaldo['object']);
      }
      $this->redirect('@responseEvoucher');
    
      
  }



}
